package rabbitmq

import "fmt"

var done chan bool

//StartConsume 开始监听队列，获取消息
func StartConsume(qName, cName string, callback func(msg []byte) bool) {
	//1、通过channel.Consume获取消息信道
	fmt.Println("开始start")
	suc := initChannel()
	if !suc {
		fmt.Println("初始化channel错误")
		return
	}
	msgs, err := channel.Consume(
		qName,
		cName,
		true,
		false,
		false,
		false,
		nil,
	)
	if err != nil {
		fmt.Println("errt", err)
		return
	}
	done = make(chan bool)
	go func() {
		//2、循环获取队列消息
		for msg := range msgs {
			//3、调用callback方法来处理新消息
			processSuc := callback(msg.Body)
			if !processSuc {
				//TODO:将任务写到另一个队列
			}
		}
	}()
	<-done

	//关闭rabbitMQ
	channel.Close()
}
